package cc.loac.heba.service;

import cc.loac.heba.dao.SchoolDao;
import cc.loac.heba.pojo.Result;
import cc.loac.heba.pojo.School;
import cc.loac.heba.tool.Common;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class SchoolService {

    @Resource
    SchoolDao schoolDao;

    @Resource
    LoginTokenService loginTokenService;

    /**
     * 获取所有学校
     * @param email 邮箱
     * @param token Token
     * @return Result
     */
    public String getSchools(String email, String token) {
        Result result;
        try {
            result = tokenIsExpired(email, token);
            if (result.getStatus() != 0) {
                // Token 有问题，返回原因
                return Common.toJson(result);
            }

            List<School> schools = schoolDao.selectAllSchool();
            result.setContent(schools);
            return Common.toJson(result);
        } catch (Exception e) {
            e.printStackTrace();
            return Common.exceptionResults();
        }
    }

    /**
     * 检查 Token 是否不存在或者过期
     * @param email 邮箱
     * @param token Token
     * @return Result
     */
    private Result tokenIsExpired(String email, String token) {
        // 未传入 token
        if (token == null) {
            return Common.tokenIsNull();
        }
        Result tokenResult = loginTokenService.checkToken(email, token);
        if (tokenResult.getStatus() != 0) {
            // Token 已经过期
            return tokenResult;
        }
        return new Result();
    }
}
